home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / pascal / tpb4_src.zip / GLOBALS.PAS < prev    next >
Pascal/Delphi Source File  |  1988-09-13  |  28KB  |  779 lines

  1. { TPBoard 4.2 Copyright (c) 1987,88 by Jon Schneider & Rick Petersen  
  2.   Portions Copyright (c) 1986,87 by Steve Fox and Les Archambault  
  3.   
  4.   Last modified  ::  9-13-88 7:02 pm 
  5. }
  6.  
  7. {$R-}                             {Range checking off}
  8. {$B-}                             {Boolean complete evaluation off}
  9. {$S-}                             {Stack checking off}
  10. {$I+}                             {I/O checking on}
  11. {$N-}                             {No numeric coprocessor}
  12.  
  13. Unit Globals;
  14.  
  15. Interface
  16.  
  17. Uses
  18.   TPCrt, Dos, TPASCIIZ, TAccess;
  19.   
  20.   
  21. const
  22.   version         = 'TPBoard 4.2';
  23.   ver_date        = '09/15/88';
  24.   
  25.   def_maxfree_uplds = 50;         { #K disk space left when uplds will be disabled}
  26.   def_maxfree_logs = 25;          { #K  "     "     "   " logins will be disabled}
  27.   def_maxfree_mslimit = 20;       { #K left when msgs will be limited to maxfree_lines}
  28.   def_maxfree_lines = 10;         { # lines allowed when msgs are limited by disk space}
  29.   def_maxfree_abs = 5;            { when this amount of space remains, all mesg entering restricted}
  30.   def_uval_acc    = 20;           { Default access level }
  31.   def_uval_time   = 20;           { Default time limit }
  32.   def_chars       = 80;           { Default characters per line }
  33.   def_lines       = 22;           { Default lines per page }
  34.   def_val_acc     = 50;           { Access level for validated users }
  35.   def_val_time    = 50;           { Time limit for validated users }
  36.   def_chat_ok     = True;         { allow chat function}
  37.   def_ChatStart   = 00;           { Chat hours }
  38.   def_ChatEnd     = 24;
  39.   dir_fence       = '|';          { Character between directory columns }
  40.   def_unv_days    = 61;           { Days to retain unvalidated user }
  41.   def_val_days    = 180;          { Days to retain validated user }
  42.   def_unr_days    = 60;           { Days to retain unread, undeleted messages }
  43.   def_rea_days    = 30;           { Days to retain read, undeleted messages }
  44.   def_Max_Tries   = 4;            { Max number of tries for password }
  45.   deflt_macro     = 'P;A;S;LOGIN;G'; { DEFAULT MACRO STRING, ^M=CR }
  46.   def_auto_macro_start = 4;       { auto macro start time}
  47.   def_restrict300 = True;         { restrict 300 baud callers}
  48.   def_start_restrict300 = 17;
  49.   def_end_restrict300 = 24;
  50.   def_modem_answer = False;       { don't let modem answer phone}
  51.   def_auto_macro  = True;         { no auto macro processing}
  52.   def_limit_lines = False;        { limits number of lines in messages}
  53.   def_max_msg_lines = 100;        { when restricted only}
  54.   def_restrict_public = False;    { requires sysop release for public msgs.}
  55.   def_up_down_ratio = 20;         { downloads per upload, 0=no restriction}
  56.   def_sleepy_time = 300;          { input timeout in seconds}
  57.   def_extra_time_val = 20;        { extra minutes on sys allowed at certain ties}
  58.   def_extra_time_start = 2;       { hour tostart extra time on system}
  59.   def_extra_time_stop = 6;        { hour extra time stops}
  60.   def_extra_time  = True;         { extra time enabled}
  61.   def_down_ok     = False;        { can new users download}
  62.   def_new_days    = 30;           { days for files to age in Newin }
  63.   def_answer_delay = 500;         { delay between ring and answer}
  64.   def_com_port    = 1;            { com port to use}
  65.   def_modem_rate  = 300;          { rate to communicate with modem}
  66.   def_ok_str      = '0';          { result codes}
  67.   def_ring_str    = '2';
  68.   def_connect300  = '1';
  69.   def_connect1200 = '5';
  70.   def_connect2400 = '10';
  71.   def_connect9600 = '13';
  72.   def_connect1200ecc = '15';
  73.   def_connect2400ecc = '16';
  74.   def_connect9600ecc = '17';
  75.   def_error_str   = '4';
  76.   def_init_str    = '|~ATZ|~~ATX4Q0H0M0V0E1S2=255|';
  77.   def_off_hook_str = 'ATH1|';
  78.   def_answer_str  = 'ATA|';
  79.   def_hang_up_str = 'ATH0|';
  80.   def_attention   = 255;
  81.   def_question    = 'Do you want IBM Color Graphics';
  82.   def_disp_dir    = True;
  83.   def_line_abort  = 250;
  84.   def_format      = True;
  85.   
  86.   { File names }
  87.   
  88.   user_data       = 'USERDAT';    { User data }
  89.   user_indx       = 'USERIDX';    { Index to user data }
  90.   area_indx       = 'NEWAIDX';    { Index to NEWIN by area }
  91.   name_indx       = 'NEWNIDX';    { Index to NEWIN by filename }
  92.   logr_name       = 'LOG';        { Log file }
  93.   mesg_name       = 'MESSAGE';    { Messages }
  94.   summ_name       = 'SUMMARY';    { Summaries }
  95.   sysm_name       = 'SYSMSG';     { System messages }
  96.   sect_name       = 'SECTION';    { Section names }
  97.   stat_name       = 'STATS';      { Statistics }
  98.   nwin_name       = 'NEWIN';      { New uploads list }
  99.   nsum_name       = 'SUMM';       { NetMail summary file }
  100.   ext             = '.BB#';       { File type }
  101.   
  102.   { ASCII constants }
  103.   
  104.   NUL             = #$00;
  105.   SOH             = #$01;
  106.   STX             = #$02;
  107.   ETX             = #$03;
  108.   EOT             = #$04;
  109.   ENQ             = #$05;
  110.   ACK             = #$06;
  111.   BEL             = #$07;
  112.   BS              = #$08;
  113.   TAB             = #$09;
  114.   LF              = #$0A;
  115.   VT              = #$0B;
  116.   FF              = #$0C;
  117.   CR              = #$0D;
  118.   DC1             = #$11;
  119.   DC3             = #$13;
  120.   NAK             = #$15;
  121.   CAN             = #$18;
  122.   ESC             = #$1B;
  123.   SPC             = #$20;
  124.   RUB             = #$7F;
  125.   XON             = $11;
  126.   XOFF            = $13;
  127.   SoftCR          = #$8D;
  128.   LeftArrow       = #$CB;         { extended scan code + hi bit set }
  129.   EndKey          = #$CF;         { extended scan code + hi bit set }
  130.   DelKey          = #$D3;         { extended scan code + hi bit set }
  131.   
  132.   { Used for Fido Mail }
  133.   
  134.   def_node        = 23;
  135.   def_net         = 381;
  136.   def_zone        = 1;
  137.   def_fidomail    = 'C:\MAIL\MESSAGES';
  138.   def_fidolists   = 'C:\MAIL';
  139.   def_fido_sysop  = 'Jon Schneider';
  140.   echo_name       = 'ECHO';
  141.   netlist         = 'NETLIST.TPB';
  142.   nodelist        = 'NODELIST.TPB';
  143.   
  144.   { Used for Quotes mod }
  145.   
  146.   quot_name       = 'QUOTES';     {file name of QUOTES.BB#}
  147.   qidx_name       = 'QUOTEIDX';   {file name of QUOTIDX.BB#}
  148.   
  149.   
  150.   { Used for external protocols and ANSI graphics }
  151.   
  152.   sysmg_name      = 'SYSMSGG';
  153.   ZmdmLogName     = 'DSZ.LOG';    { Log file name for DSZ }
  154.   
  155.   
  156.   { TPBoard constants }
  157.   
  158.   len_fn          = 10;           { length of firstname }
  159.   len_ln          = 15;           { length of lastname }
  160.   len_name        = 25;           {   sum of above }
  161.   len_ad          = 20;           { length of address }
  162.   len_cy          = 20;           { length of city }
  163.   len_st          = 2;            { length of state abbreviation }
  164.   len_ph          = 12;           { length of phone number }
  165.   len_pw          = 10;           { length of password }
  166.   len_subj        = 56;           { length of subject }
  167.   len_msg         = 72;           { length of message }
  168.   
  169.   message_mode    = 1;
  170.   files_mode      = 2;
  171.   utility_mode    = 3;
  172.   sysop_mode      = 4;
  173.   pr_msg : array[1..4] of string[7] = ('Message', 'Files', 'Utility', 'Sysop');
  174.   
  175. type
  176.  
  177.   record_status   = (deleted, seen, private, public, restricted);
  178.   UpCreditType    = (Points, Kilobytes, Files);
  179.   
  180.   Str3            = string[3];
  181.   Str5            = string[5];
  182.   Str10           = string[10];
  183.   DosFileName     = string[12];
  184.   Str13           = string[13];
  185.   Str14           = string[14];
  186.   StrTAD          = string[27];
  187.   StrPr           = string[50];
  188.   StrDesc         = string[78];
  189.   StrStd          = string[80];
  190.   Str100          = string[100];
  191.   StrName         = string[len_name];
  192.   FirstName       = string[len_fn];
  193.   LastName        = string[len_ln];
  194.   address         = string[len_ad];
  195.   city            = string[len_cy];
  196.   state           = string[len_st];
  197.   phone           = string[len_ph];
  198.   password        = string[len_pw];
  199.   subject         = string[len_subj];
  200.   message         = string[len_msg];
  201.   
  202.   tad_array       = array[0..5] of Byte;
  203.   name_array      = array[1..11] of Byte;
  204.   hour_array      = array[0..23] of Integer;
  205.   day_array       = array[0..6] of Integer;
  206.   fname_array     = array[1..10] of DosFileName;
  207.   last_read_arry  = array[0..63] of Integer;
  208.   
  209.   
  210.   SysmPtr         = ^SysmRecord;
  211.   SysmRecord =
  212.     record
  213.       key             : Char;     { Key value }
  214.       loc             : Integer;  { Location of record in file }
  215.       next            : SysmPtr   { Pointer to next element on list }
  216.     end;
  217.     
  218.   MesgPtr         = ^MesgRecord;
  219.   MesgRecord =
  220.     record
  221.       MesgNo,                     { Message number }
  222.       SummLoc         : Integer;  { Summary index }
  223.       TypMsg          : Byte;     { Message type }
  224.       next            : MesgPtr   { Pointer to next element on list }
  225.     end;
  226.     
  227.   {.F-}
  228.   
  229.   FilePtr         = ^FileRecord;
  230.   FileRecord =
  231.     record
  232.       fname           : DosFileName; { Name of a matching file }
  233.       index           : Word;        { Libraries only: location of file }
  234.       fsize           : LongInt;     { Size of file }
  235.       attrib          : Byte;        { Attributes of file }
  236.       next            : FilePtr      { Pointer to next element on list }
  237.     end;
  238.     
  239.   SectPtr         = ^SectRecord;
  240.   SectRecord =
  241.     record
  242.       SectDrive       : Char;        { Drive }
  243.       SectUser,                      { User area }
  244.       SectConf,                      { Conference number 1-7}
  245.       SectAccs        : Integer;     { Access level required }
  246.       SectName        : DosFileName; { Section name }
  247.       SectDesc        : StrPr;       { Description }
  248.       next            : SectPtr      { Pointer to next element on list }
  249.     end;
  250.     
  251.   AreaPtr         = ^AreaRecord;
  252.   AreaRecord =
  253.     record
  254.       Area,                          { Area number }
  255.       AreaConf,                      { Conference number 1-7}
  256.       AreaAccs        : Integer;     { Access level required }
  257.       AreaName        : DosFileName; { Message area name }
  258.       AreaDesc        : StrPr;       { Description }
  259.       next            : AreaPtr      { Pointer to next element on list }
  260.     end;
  261.     
  262.   ArtPtr          = ^ArtRecord;
  263.   ArtRecord =
  264.     record
  265.       Artdrive        : Char;
  266.       ArtUser,
  267.       ArtAccs,
  268.       Artnum          : Integer;
  269.       ArtName         : DosFileName;
  270.       ArtDesc         : strpr;
  271.       Next            : ArtPtr;
  272.     end;
  273.     
  274.   NetAreaPtr      = ^NetAreaRecord;
  275.   NetAreaRecord =
  276.     record
  277.       AreaName        : DosFileName;
  278.       Next            : NetAreaPtr;
  279.     end;
  280.     
  281.   EntryBlock =
  282.     record
  283.       status          : Byte;
  284.       fname           : name_array;
  285.       index,
  286.       fsize,
  287.       CRC,
  288.       CreationDate,
  289.       LastChangeDate,
  290.       CreationTime,
  291.       LastChangeTime  : Integer;
  292.       PadCount        : Byte;
  293.       filler          : array[27..31] of Byte
  294.     end;
  295.     
  296.   user_list =
  297.     record
  298.       used            : LongInt;        {  4 }
  299.       { Personal information }
  300.       fn              : firstname;      { 11 }
  301.       ln              : lastname;       { 16 }
  302.       ad              : address;        { 21 }
  303.       cy              : city;           { 21 }
  304.       st              : state;          {  3 }
  305.       ph              : phone;          { 13 }
  306.       flags           : Byte;           {  1 }
  307.       pw              : password;       { 11 }
  308.       { User access }
  309.       access          : Byte;           {  1 }
  310.       limit           : Byte;           {  1 }
  311.       { User configuration }
  312.       nulls           : Byte;           {  1 }
  313.       shift_lock      : Boolean;        {  1 }
  314.       noisy           : Boolean;        {  1 }
  315.       conf_flags      : Byte;           {  1 }
  316.       columns         : Byte;           {  1 }
  317.       lines           : Byte;           {  1 }
  318.       { User stats }
  319.       laston          : tad_array;      {  6 }
  320.       time_today      : Integer;        {  2 }
  321.       time_total      : Integer;        {  2 }
  322.       lasthi          : Integer;        {  2 }
  323.       upload          : Word;           {  2 }
  324.       download        : Word;           {  2 }
  325.       protocol        : Char;           {  1 }
  326.       ratio           : Byte;           {  1 }
  327.       last_read       : last_read_arry; {128 }
  328.       caca            : Byte;           {  1 }
  329.       acct_bal        : Integer         {  2 }
  330.     end;                             { Total 258 }
  331.     
  332.   sort_typ  =
  333.     record
  334.       first           : StrStd;
  335.       second          : StrStd;     
  336.     end;                        
  337.     
  338.   logr_list =
  339.     record
  340.       date            : tad_array;      {  6 }
  341.       action          : Byte;           {  1 }
  342.       user            : Word;           {  2 }
  343.       Text            : DosFileName     { 13 }
  344.     end;                             { Total  22 }
  345.     
  346.   summ_list =
  347.     record
  348.       date            : tad_array;      {  6 }
  349.       status          : record_status;  {  1 }
  350.       area            : Byte;           {  1 }
  351.       num,                              {  2 }
  352.       num_prev,                         {  2 }
  353.       num_next,                         {  2 }
  354.       user_from,                        {  2 }
  355.       user_to         : Integer;        {  2 }
  356.       subject         : subject;        { 56 }
  357.       st_rec,                           {  2 }
  358.       size            : Integer         {  2 }
  359.     end;                             { Total  80 }
  360.     
  361.   stat_list =
  362.     record
  363.       date            : tad_array;      {  6 }
  364.       busy_per_hour   : hour_array;     { 48 }
  365.       busy_per_day    : day_array;      { 14 }
  366.     end;                             { Total  68 }
  367.     
  368.   nwin_list =
  369.     record
  370.       date            : tad_array;      {  6 }
  371.       status          : record_status;  {  1 }
  372.       name            : DosFileName;    { 13 }
  373.       user            : Integer;        {  2 }
  374.       sectn           : DosFileName;    { 13 }
  375.       descr           : StrDesc;        { 79 }
  376.       PointValue      : Word;           {  2 }
  377.       dnloads         : Integer;        {  2 }
  378.       last_dnload     : tad_array;      {  6 }
  379.     end;                             { Total  123 }
  380.     
  381.   sysm_list       = StrStd;          { Total  81 }
  382.   mesg_list       = message;         { Total  73 }
  383.   
  384.   untype_file     = file;
  385.   
  386.   {Arc File types}
  387.   
  388.   fntype          = array[0..12] of Char;
  389.   heads = record
  390.             name            : fntype;
  391.             size            : LongInt;
  392.             date            : Word;
  393.             time            : Word;
  394.             crc             : Word;
  395.             Length          : LongInt;
  396.           end;
  397.           
  398. var
  399.   ExitSave        : Pointer;
  400.   NewinArea,
  401.   NewinName       : IndexFile;
  402.   IdxF            : IndexFile;
  403.   DatF            : DataFile;
  404.   DispName        : string;
  405.   
  406.   { Modem Globals }
  407.   
  408.   OKAY, RING,                     { result codes}
  409.   connect300,
  410.   connect1200,
  411.   connect2400,
  412.   connect9600,
  413.   connect1200ecc,
  414.   connect2400ecc,
  415.   connect9600ecc,
  416.   Error           : StrPr;
  417.   init_str        : StrStd;       { Command strings}
  418.   off_hook_str,
  419.   answer_str,
  420.   hang_up_str     : Str14;
  421.   answer_delay,
  422.   Attention,
  423.   modem_rate      : Integer;
  424.   mnp, AllowMNP,
  425.   modem_answer    : Boolean;
  426.   
  427.   { System message global }
  428.   
  429.   SysmBase        : SysmPtr;      { Start of linked list }
  430.   NetAreaBase     : NetAreaPtr;   { Start of linked list }
  431.   Cmd_Queue       : StrStd;       { for multiple commands}
  432.   mult_cmds       : Boolean;      { true when mult cmds exist}
  433.   current_name    : string[8];
  434.   UserWantsScan   : Boolean;
  435.   
  436.   { Section globals }
  437.   
  438.   SectBase        : SectPtr;      { Start of linked list }
  439.   SectReq         : DosFileName;  { Section name }
  440.   CreditType      : UpCreditType; { Uploading credits method }
  441.   UpCredit        : Word;         { New User upload credit }
  442.   sort_rec        : sort_typ;     { Used by TurboSort }
  443.   not_found       : Integer;      { }
  444.   
  445.   { Articles globals }
  446.   
  447.   Artbase         : ArtPtr;       { start of linked list}
  448.   
  449.   { Message area globals }
  450.   
  451.   AreaBase        : AreaPtr;      { Start of linked list }
  452.   AreaReq         : DosFileName;  { Message area name }
  453.   AreaSet         : Integer;      { Current message area }
  454.   TempLastRead    : last_read_arry;
  455.   
  456.   { Directory globals }
  457.   
  458.   DirBase         : FilePtr;      { Start of linked list }
  459.   DirEntries      : Word;         { Count of directory entries }
  460.   DirSpace        : LongInt;      { Disk space used }
  461.   
  462.   { Library globals }
  463.   
  464.   
  465.   LibBase         : FilePtr;      { Start of linked list }
  466.   LibEntries      : Word;         { Count of library entries }
  467.   LibSpace        : LongInt;      { Space used }
  468.   LibReq          : DosFileName;  { Library name }
  469.   
  470.   { Arc globals}
  471.   ArcBase         : FilePtr;
  472.   ArcEntries      : Word;
  473.   ArcSpace        : LongInt;
  474.   ArcReq          : DosFileName;
  475.   Hdr             : Heads;
  476.   HdrVer          : Byte;
  477.   Endfile         : Boolean;
  478.   sizex           : Integer;
  479.   
  480.   { Message system globals }
  481.   
  482.   MesgBase,
  483.   MesgLast,
  484.   MesgCurr,
  485.   MesgPrev        : MesgPtr;      { Pointers }
  486.   temp_hi_lmr,                    { Storage for lmr}
  487.   msg_all,                        { Public message count }
  488.   msg_ind,                        { Private message count }
  489.   msg_aut,                        { Authored message count }
  490.   msg_sys,                        { Sysop viewable message count }
  491.   msg_hi, msg_lo  : Integer;      { High-low message numbers }
  492.   nonstop         : Boolean;      { flag for continuous reading}
  493.   
  494.   { System globals }
  495.   abort,                          { used to set brk from pause}
  496.   audit_on,                       { Audit file enabled }
  497.   cold,                           { Cold start }
  498.   connected,                      { Connection established }
  499.   delay_down,                     { Shutdown between users }
  500.   fini,                           { Finished with TPBoard }
  501.   in_library,                     { Library/section switch }
  502.   in_arc,                         { Arc/section switch}
  503.   in_use,                         { Successful login }
  504.   local_copy,                     { Console display }
  505.   local_online,                   { Local use allowed }
  506.   new_dir,                        { New section or library selected }
  507.   chat_ok,                        { allow chat function}
  508.   down_ok,                        { allow downloads for new user }
  509.   op_chat,                        { Operator requested chat }
  510.   in_chat,                        { In chat mode }
  511.   printer_copy,                   { Printer display }
  512.   remote_copy,                    { Remote display }
  513.   remote_online,                  { Remote use allowed }
  514.   st_switch,                      { Size/time switch }
  515.   up_down_display,                { Up/download display }
  516.   restrict300,                    { on/off flag}
  517.   auto_macro,                     { on/off flag}
  518.   macro_in_progress,              { set while macro running}
  519.   macro_file_exists,              { optional, for auto macro }
  520.   limit_lines,                    { on/off flag}
  521.   restrict_public,                { public msgs have to by approved}
  522.   extra_time_sw,                  { extra time on sys on/off}
  523.   valid_pw,                       { Correct password flag }
  524.   disp_dir,                       { Auto display directory }
  525.   format,                         { Force American phone format }
  526.   fconsole        : Boolean;      { FansiConsole present flag }
  527.   ch              : Char;         { Input character }
  528.   HomDrv,                         { Default drive }
  529.   RcvDrv,                         { Upload drive }
  530.   SetDrv,                         { User selected drive }
  531.   AudDrv          : Str3;         { Audit file drive}
  532.   HomName,
  533.   RcvName,
  534.   SetName,
  535.   AudName         : strpr;        { Path Names for above}
  536.   CommandPath,                    { Full path to COMMAND.COM }
  537.   DSZPath         : string;       { Full path to DSZ.COM }
  538.   
  539.   time_on,                        { Timers }
  540.   time_left,
  541.   extra_time,
  542.   timeout,
  543.   sleepy_time,
  544.   last_time_left,        
  545.   mode,                           { Current mode of operation }
  546.   start_restrict300,              { hour to start restrictions}
  547.   end_restrict300,                { hour to end restrictions}
  548.   auto_macro_start,               { hour to start auto macro process}
  549.   macro_done,                     { last day macro operated}
  550.   max_msg_lines,                  { max. number of lines allowed}
  551.   up_down_ratio,                  { numerator of ratio ie. 20:1}
  552.   val_acc,                        { validated user access level}
  553.   uval_acc,                       { unvalidated}
  554.   uval_time,                      { same for unvalidated users}
  555.   val_time,                       { time on sys limit - validated}
  556.   chatstart,                      { hour sysop available}
  557.   chatend,                        { end of chat available}
  558.   unv_days,                       { retention of user listing}
  559.   val_days,                       { retention of val users}
  560.   unr_days,                       { message retention}
  561.   rea_days,                       { same for after read}
  562.   new_days,                       { days to age in Newin}
  563.   maxfree_uplds,                  { variables to shut off or limit}
  564.   maxfree_logs,
  565.   maxfree_mslimit,                { functions when too little disk}
  566.   maxfree_lines,
  567.   maxfree_abs,                    { space is left}
  568.   extra_time_val,                 { for extra time on system}
  569.   ExtraTimeStart,
  570.   ExtraTimeStop,
  571.   line_abort,                     { abort 'Type' after # of lines}
  572.   max_tries       : Integer;      { counter}
  573.   rate,                           { Current bps rate }
  574.   time_count      : Word;
  575.   free_space,                     { Space remaining on current drive }
  576.   user_loc        : LongInt;      { Location in data file of user record }
  577.   input_time      : Real;         { for input timout routine}
  578.   st,                             { general use input string}
  579.   macro,                          { Automatic 'keyboard' input }
  580.   Queue,                          { KeyBoard stuffing buffer }
  581.   next_inpstr     : StrStd;       { Input string - used for word wrap }
  582.   
  583.   login_t         : tad_array;    { Login time }
  584.   
  585.   
  586.   { Files }
  587.   
  588.   user_rec        : user_list;
  589.   dir_file,
  590.   sort_file       : Text;
  591.   
  592.   sysm_rec        : sysm_list;
  593.   sysm_file       : file of sysm_list;
  594.   
  595.   summ_rec        : summ_list;
  596.   summ_file       : file of summ_list;
  597.   
  598.   mesg_rec        : mesg_list;
  599.   mesg_file       : file of mesg_list;
  600.   
  601.   logr_rec        : logr_list;
  602.   logr_file       : file of logr_list;
  603.   
  604.   stat_rec        : stat_list;
  605.   stat_file       : file of stat_list;
  606.   
  607.   nwin_rec        : nwin_list;
  608.   nwin_file       : file of nwin_list;
  609.   
  610.   libr_file       : file;
  611.   arc_file        : file;
  612.   AuditFile       : Text;
  613.   config_file     : Text;
  614.   macro_file      : Text;
  615.   chl             : Char;
  616.   com             : Text;
  617.   lst             : Text;
  618.   
  619. type
  620.  
  621.   { Used for Fido Mail }
  622.   
  623.   msg_array       = array[1..1024] of Integer;
  624.   nam_array       = array[1..36] of Char;
  625.   date_array      = array[1..20] of Char;
  626.   subj_array      = array[1..72] of Char;
  627.   Str20           = string[20];
  628.   Str36           = string[36];
  629.   Str72           = string[72];
  630.   
  631.   name_arry       = array[1..20] of Char;
  632.   city_array      = array[1..40] of Char;
  633.   
  634.   fido_msg_hdr =
  635.     record
  636.       msg_from        : nam_array;              { Who from }
  637.       msg_to          : nam_array;              { Who to }
  638.       subject         : subj_array;             { Subject }
  639.       date            : date_array;             { Date of Message }
  640.       times           : Integer;                { Number of times read }
  641.       dest_node       : Integer;                { Destination Node }
  642.       orig_node       : Integer;                { Originating Node }
  643.       cost            : Integer;                { Cost in cents }
  644.       orig_net        : Integer;                { Originating net }
  645.       dest_net        : Integer;                { Destination net }
  646.       caca            : array[1..4] of Integer; { Extra space }
  647.       prev_msg        : Integer;                { Thread to previous message }
  648.       attr_low        : Byte;                   { Message attributes }
  649.       attr_high       : Byte;                   {                    }
  650.       next_msg        : Integer                 { Thread to next message }
  651.     end;
  652.     
  653.   net_lst_hdr =
  654.     record
  655.       net_num         : Integer;    { Network number }
  656.       net_name        : name_arry;  { Name of Node }
  657.       net_city        : city_array; { Net Host location }
  658.       node_ptr        : Integer;    { Pointer to node record }
  659.       num_nodes       : Integer;    { How many nodes in net }
  660.     end;
  661.     
  662.     
  663.   node_lst_hdr =
  664.     record
  665.       node_num        : Integer;    { Node number }
  666.       net_num         : Integer;    { Net number }
  667.       node_cost       : Integer;    { Message cost }
  668.       node_name       : name_arry;  { Name of Node }
  669.       node_city       : city_array; { City, State }
  670.     end;
  671.     
  672.     
  673.   Fido_Summ_Rec =
  674.     record
  675.       from_loc        : LongInt;
  676.       to_loc          : LongInt;
  677.       Number          : Integer;
  678.     end;
  679.     
  680.     
  681.   { Used for the Quotes mod }
  682.   
  683.   quot_record =                   {structure of QUOTES.BB#}
  684.     record
  685.       Text            : StrStd;
  686.     end;
  687.     
  688.   qidx_record =                   {structure of QUOTEIDX.BB#}
  689.     record
  690.       loc             : Integer;
  691.     end;
  692.     
  693. var
  694.  
  695.   { Used for the Quotes mod }
  696.   
  697.   quot_file       : file of quot_record;   { file var for QUOTES.BB# }
  698.   quot_rec        : quot_record;
  699.   quot_count      : Integer;               { count of quotations in file }
  700.   qidx_file       : file of qidx_record;   { file var for QUOTEIDX.BB# }
  701.   qidx_rec        : qidx_record;
  702.   
  703.   { Used for external protocols }
  704.   
  705.   ext_log         : Text;
  706.   ext_log_rec     : StrStd;
  707.   errcode         : Integer;
  708.   com_port        : Byte;
  709.   baud            : string[4];
  710.   
  711.   { Used for Fido Mail }
  712.   
  713.   msg_hdr         : fido_msg_hdr;
  714.   net_hdr         : net_lst_hdr;
  715.   node_hdr        : node_lst_hdr;
  716.   summary_record  : fido_summ_rec;
  717.   fido_file       : file of fido_msg_hdr;
  718.   net_file        : file of net_lst_hdr;
  719.   node_file       : file of node_lst_hdr;
  720.   fido_summ_file  : file of fido_summ_rec;
  721.   fido_message,
  722.   echo_file       : Text;
  723.   Byte_file,
  724.   temp_file       : file of Byte;
  725.   cmd_tail        : Boolean;
  726.   num_params,        
  727.   time_to_event   : Integer;
  728.   dummy_subj,
  729.   FidoArea        : Str72;
  730.   dummy_str,
  731.   UserFullName    : Str36;
  732.   UserFirstName   : FirstName;
  733.   dummy_int,
  734.   msg_offset,
  735.   this_node,
  736.   this_net,
  737.   this_zone       : Integer;
  738.   fido_sysop      : StrName;
  739.   fidomail,
  740.   fidolists       : StrStd;
  741.   fido            : Boolean;
  742.   NetMsgEntr,
  743.   EchoMsgEntr     : Word;
  744.   temp_asciiz     : Asciiz;
  745.   msg_numbers     : msg_array;
  746.   first_scan      : Boolean;
  747.   
  748.   { Used for ANSI Graphics }
  749.   
  750.   graphics        : Boolean;
  751.   question        : Str72;
  752.   hi, low, green,     
  753.   yellow, cyan,    
  754.   white           : Str5;
  755.   
  756.   { Used for SYSOP menu password }
  757.   
  758.   menu_password,
  759.   menu_temp       : string[8];
  760.   
  761.   { Used for origin line }
  762.   
  763.   orig_file       : Text;
  764.   my_net,
  765.   my_node,
  766.   my_zone         : Str10;
  767.   orig_line,
  768.   tear_line,
  769.   sect_orig,
  770.   seenby_line     : string;
  771.   {.F+}
  772.   
  773.   {==========================================================================}
  774.   
  775. Implementation
  776.  
  777. end.                              { of GLOBALS.PAS}
  778. 
  779.